layui.use(['layer', 'form', 'admin', 'ax', 'laytpl'], function () {
    var $ = layui.jquery;
    var $ax = layui.ax;
    var form = layui.form;
    var admin = layui.admin;
    var layer = layui.layer;
    var laytpl = layui.laytpl;

    //获取所有可筛选服务
    var ajax = new $ax(system.contextPath + "/api/pay.config.getAllTemplate");
    ajax.setType("get");
    var result = ajax.start();
    if (result.status) {
        var data = result.data;
        var data0 = {
            list: data,
        };
        var part0Temp = document.getElementById('part0-template');
        laytpl(part0Temp.innerHTML).render(data0, function (html) {
            document.getElementById('part0').innerHTML = html;
            form.render();
        });
    }


    //获取菜单信息
    var id = system.getUrlParam("id");
    var ajax1 = new $ax(system.contextPath + "/api/pay.config.get");
    ajax1.setType("get");
    ajax1.set({id: id});
    var result1 = ajax1.start();
    resetParameterJsonExample(result1.data.code, JSON.parse(result1.data.parameterJson));
    form.val('formContainer', result1.data);
    form.render()

    // 表单提交事件
    form.on('submit(btnSubmit)', function (data) {
        var param = data.field;
        param["parameterJson"] = wrapParameter();
        param["id"] = system.getUrlParam("id");
        var ajax = new $ax(system.contextPath + "/api/pay.config.update", function (res) {
            if (res.status) {
                system.success("修改成功！");
                //传给上个页面，刷新table用
                admin.putTempData('formOk', true);
                //关掉对话框
                admin.closeThisDialog();
            } else {
                system.error("修改失败！" + res.msg)
            }
        }, function (res) {
            system.error("修改失败！" + res.msg)
        });
        ajax.set(param);
        ajax.start();

        return false;
    });

    form.on('select(sms-sender-select-filter)', function (data) {
        var $parameterJsonExampleContainer = $('#parameterJsonExampleContainer');
        if (!data.value) {
            $parameterJsonExampleContainer.hide();
            return;
        }
        resetParameterJsonExample(data.value, JSON.parse(result1.data.parameterJson));

        $('#tempName').val(data.elem[data.elem.selectedIndex].text);
    })

    function resetParameterJsonExample(code, valMap) {
        var $parameterJsonExampleContainer = $('#parameterJsonExampleContainer');
        if ($parameterJsonExampleContainer.data("value") != code) {
            $parameterJsonExampleContainer.attr("data-value", code);
            $parameterJsonExampleContainer.children().remove();

            var ajax = new $ax(system.contextPath + "/api/pay.config.getOneTemplate");
            ajax.setType("get");
            ajax.set("code", code);
            var result = ajax.start();
            if (result && result.status) {
                for (var key in result.data) {
                    var val = valMap ? valMap[key] ? valMap[key] : '' : '';
                    var $html = $('<label class="layui-form-label">' + key + '<span style="color: red;">*</span></label>\n' +
                        '\t\t<div class="layui-input-block" >\n' +
                        '\t\t\t<input data-name="' + key + '" placeholder="' + result.data[key] + '" value="' + val + '" type="text" class="layui-input" lay-verify="required" required/>\n' +
                        '\t\t\t<p style="color: red;font-size: 9px">' + result.data[key] + '</p>\n' +
                        '\t\t</div><br>')
                    $parameterJsonExampleContainer.append($html);
                }
            }
            $parameterJsonExampleContainer.removeClass('hide').show();
        }
    }

    function wrapParameter() {
        var res = {};
        var $parameterJsonExampleContainer = $('#parameterJsonExampleContainer');
        $parameterJsonExampleContainer.find("input").each(function () {
            res[$(this).data("name")] = $(this).val()
        })
        return JSON.stringify(res);
    }
});